﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using RMAS.DAL;
using APP.QUANLY.Common;

namespace RMAS
{
    public partial class frmSales : Form
    {
        private string[] TableID = new string[100];
        public string[] TableName = new string[100];

        DM_AREAList AreaList;
        DM_AREADao exeArea;
        DM_TABLEList TableList;
        DM_TABLEDao exeTable;

        private void InitExecuteClass()
        {
            exeArea = new DM_AREADao();
            exeTable = new DM_TABLEDao();
        }
        private bool GetDanhSachKhuVuc()
        {
            DM_AREAList DS = exeArea.SelectAll();
            if (DS == null)
            {
                MessageBox.Show("Không thể tải dữ liệu danh sách khu vực");
                base.Close();
            }
            if (DS.Count == 0)
                return false;
            AreaList = DS;
            return true;
        }
        private bool GetDanhSachBan()
        {
            DM_TABLEList DS = exeTable.SelectAll();
            if (DS == null)
            {
                MessageBox.Show("Không thể tải dữ liệu danh sách bàn");
                base.Close();
            }
            if (DS.Count == 0)
                return false;
            TableList = DS;
            return true;
        }
        //private bool GetDanhSachNhomThucDon()
        //{
        //    clsGeneral.DSNhomThucDon = new Dictionary<string, string>();
        //    List<DM_GROUPMENU> DSNhomThucDon = exeGroupMenu.GetAll().ToList().OrderBy(o => o.ID).ToList();
        //    clsGeneral.DanhSachNhomThucDon = DSNhomThucDon;
        //    foreach (DM_GROUPMENU obj in DSNhomThucDon)
        //    {
        //        clsGeneral.DSNhomThucDon.Add(obj.ID, obj.Name);
        //    }
        //    if (clsGeneral.DSNhomThucDon.Count == 0)
        //        return false;
        //    return true;
        //}
        //private bool GetDanhSachThucDon()
        //{
        //    clsGeneral.DSThucDon = new Dictionary<string, string>();
        //    List<DM_MENU> DSThucDon = exeMenu.GetAll().ToList().Where(o => (o.IsUse == true) && (o.IsDelete == false)).OrderBy(o => o.PrID).ToList();
        //    clsGeneral.DanhSachThucDon = DSThucDon;
        //    foreach (DM_MENU obj in DSThucDon)
        //    {
        //        clsGeneral.DSThucDon.Add(obj.PrID, obj.PrName);
        //    }
        //    if (clsGeneral.DSThucDon.Count == 0)
        //        return false;
        //    return true;
        //}
        //private bool GetDanhSachDonViTinh()
        //{
        //    List<DM_UNIT> DanhSachDonVi = exeUnit.GetAll().ToList().OrderBy(o => o.ID).ToList();
        //    clsGeneral.DanhSachDonVi = DanhSachDonVi;
        //    if (clsGeneral.DanhSachDonVi.Count == 0)
        //        return false;
        //    return true;
        //}
        //private void LoadDanhSachThucDon(string searchFor)
        //{
        //    this.dgvProducts.AutoGenerateColumns = false;
        //    string text;
        //    if (searchFor != "")
        //    {
        //        text = searchFor;
        //        //    text = string.Concat(new string[]
        //        //    {
        //        //        " AND (UPPER([TabProducts].[ShortName]) LIKE N'%",
        //        //        searchFor.ToUpper(),
        //        //        "%' OR UPPER([TabProducts].[NameForSearch]) LIKE N'%",
        //        //        searchFor.ToUpper(),
        //        //        "%'  OR UPPER([TabProducts].[P_Name]) LIKE N'%",
        //        //        searchFor.ToUpper(),
        //        //        "%') "
        //        //    });
        //    }
        //    else
        //    {
        //        text = " ";
        //    }
        //    DataTable dataTable = new DataTable();
        //    dataTable.Columns.AddRange(new DataColumn[] {
        //        new DataColumn ("PrID", typeof(string)),
        //        new DataColumn ("PrName", typeof(string)),
        //        new DataColumn ("PrImage", typeof(byte[])),
        //        new DataColumn ("PrPrice_RetailPrice", typeof(string)),
        //        new DataColumn ("PrPrice_WholePrice", typeof(string)),
        //        new DataColumn ("UnitID1", typeof(string)),
        //        new DataColumn("UnitName", typeof(string))
        //    });
        //    foreach (DM_GROUPMENU objGroup in clsGeneral.DanhSachNhomThucDon)
        //    {
        //        dataTable.Rows.Add(new object[]
        //        {
        //            "",
        //            "+ " + objGroup.Name.ToString().ToUpper(),
        //            null,
        //            "",
        //            "",
        //            "",
        //            ""
        //        });
        //        List<DM_MENU> objThucDon = clsGeneral.DanhSachThucDon.Where(o => o.GroupMenuID == objGroup.ID).ToList();
        //        foreach (DM_MENU obj in objThucDon)
        //        {
        //            if (obj.PrImage == null)
        //            {
        //                dataTable.Rows.Add(new object[]
        //                {
        //                    obj.PrID.ToString(),
        //                    obj.PrName.ToString().ToUpper(),
        //                    null,
        //                    obj.PrPrice_RetailSale.ToString(),
        //                    obj.PrPrice_WholeSale.ToString(),
        //                    obj.UnitID1.ToString(),
        //                    //objDVT.ToUpper()
        //                    obj.DM_UNIT.Name.ToString().ToUpper()
        //                });
        //            }
        //            if (obj.PrImage != null)
        //            {
        //                dataTable.Rows.Add(new object[]
        //                {
        //                    obj.PrID.ToString(),
        //                    obj.PrName.ToString().ToUpper(),
        //                    BLL.app.common.ImageHelper.GetImageFromBytes(obj.PrImage),
        //                    obj.PrPrice_RetailSale.ToString(),
        //                    obj.PrPrice_WholeSale.ToString(),
        //                    obj.UnitID1.ToString(),
        //                    clsGeneral.DanhSachDonVi.Where(o => o.ID == obj.UnitID1).SingleOrDefault().Name.ToString().ToUpper()
        //                });
        //            }
        //        }
        //    }
        //    this.dgvProducts.DataSource = dataTable;
        //    this.dgvProducts.ForeColor = Color.Black;
        //    this.dgvProducts.Visible = true;
        //    //this.dgvProducts.Columns[0].Visible = false;
        //    //this.dgvProducts.Columns[2].Visible = false;
        //    //this.dgvProducts.Columns[3].Visible = false;
        //    //this.dgvProducts.Columns[4].Visible = false;
        //    //this.dgvProducts.Columns[5].Visible = false;
        //    //this.dgvProducts.Columns[6].Visible = false;
        //}
        private void LoadAllData()
        {
            InitExecuteClass();
            bool KQ = GetDanhSachKhuVuc();
            if (KQ)
                KQ = GetDanhSachBan();
            else
            {
                MessageBox.Show("Danh sách khu vực không tồn tại. \r\n", "RMAS - Xác nhận", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                base.Close();
            }

            if (!KQ)
            {
                MessageBox.Show("Danh sách bàn không tồn tại. \r\n", "RMAS - Xác nhận", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                base.Close();
            }

            //KQ = GetDanhSachNhomThucDon();
            //if (KQ)
            //    KQ = GetDanhSachThucDon();
            //else
            //{
            //    MessageBox.Show("Danh sách nhóm thực đơn không tồn tại. \r\n Vui lòng nhập thông tin nhóm thực đơn. \r\n", "RMAS - Xác nhận", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            //    base.Close();
            //}
            //if (!KQ)
            //{
            //    MessageBox.Show("Danh sách thực đơn không tồn tại. \r\n Vui lòng nhập thông tin thực đơn. \r\n", "RMAS - Xác nhận", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            //    base.Close();
            //}
            //else
            //{
            //    KQ = GetDanhSachDonViTinh();
            //}
            //if (!KQ)
            //{
            //    MessageBox.Show("Danh sách đơn vị tính không tồn tại. \r\n Vui lòng nhập thông tin đơn vị tính. \r\n", "RMAS - Xác nhận", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            //    base.Close();
            //}
        }

        public frmSales()
        {
            InitializeComponent();
        }

        
        Image ImageBanTrong = null;
        Image ImageBanDangSuDung = null;
        Image ImageBanGhepHoaDon = null;
        private void LoadImage()
        {
            imageList1.Images.Clear();
            string startupPath = Application.StartupPath;

            Image value1 = Image.FromFile(startupPath + "\\Img1.jpg");
            ImageBanTrong = value1;

            Image value2 = Image.FromFile(startupPath + "\\Img0.jpg");
            ImageBanDangSuDung = value2;

            Image value3 = Image.FromFile(startupPath + "\\Img0.jpg");
            ImageBanGhepHoaDon = value3;
        }
        private void LoadImageToListView()
        {
            LoadImage();
            imageList1.ImageSize = new Size(55, 55);
            imageList1.Images.Add("Bàn Trống", ImageBanTrong);//0
            imageList1.Images.Add("Bàn Đang Sử Dụng", ImageBanDangSuDung);//1
            imageList1.Images.Add("Bàn Ghép Hóa Đơn", ImageBanGhepHoaDon);//2
            listView1.LargeImageList = imageList1;
        }
        private void LoadToListViewKhuVucBan()
        {
            this.listView1.Groups.Clear();
            this.listView1.Items.Clear();
            this.listView1.Clear();
            this.listView1.SetExStyles();

            try
            {
                StaticVar.SoBanDat = StaticVar.SoBanDat = StaticVar.SoBanSuDung = StaticVar.SoBanGhep = 0;
                LoadImageToListView();
                listView1.BeginUpdate();
                ListViewGroup myLVgroup = null;
                Font font = new Font("Tahoma", 10, FontStyle.Bold);

                foreach (DM_AREA objArea in AreaList)
                {
                    myLVgroup = new ListViewGroup(objArea.ID.ToString().ToUpper(), objArea.Name.ToString().ToUpper());
                    listView1.Groups.Add(myLVgroup);
                    DM_TABLEList DanhSachBan = TableList.FindListByAreaID(objArea.ID);
                    foreach (DM_TABLE obj in DanhSachBan)
                    {
                        if (obj.Status == 0)
                            listView1.Items.Add(obj.ID, obj.Name, int.Parse(obj.Status.ToString()));
                        if (obj.Status == 1)
                            listView1.Items.Add(obj.ID, obj.Name, int.Parse(obj.Status.ToString()));
                        if (obj.Status == 2)
                            listView1.Items.Add(obj.ID, obj.Name, int.Parse(obj.Status.ToString()));
                        if (obj.Status == 3)
                            listView1.Items.Add(obj.ID, obj.Name, int.Parse(obj.Status.ToString()));
                        listView1.Font = font;
                        listView1.ForeColor = Color.Navy;
                        listView1.Items[obj.ID].Tag = obj.Status.ToString();
                        if (listView1.Groups.Contains(listView1.Groups[objArea.ID.ToString()]))
                            listView1.Items[obj.ID].Group = listView1.Groups[objArea.ID.ToString()];
                        //lvBan.MouseClick += new MouseEventHandler(lvBan_MouseClickNew);
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {
                listView1.Refresh();
                listView1.EndUpdate();
            }
        }

        private void frmSales_Load(object sender, EventArgs e)
        {
            this.listView1.ShowGroups = true;
            this.LoadAllData();
            this.LoadToListViewKhuVucBan();
            //this.LoadDanhSachThucDon("");
        }

        
    }
}
